package pkg

import (
	"Conf"
	"fmt"
	"github.com/smartwalle/alipay/v3"
	"models"
)

func AliPay(Order models.Order) (string, error) {
	var client, _err = alipay.New(Conf.PConfig.AliPay.AppId, Conf.PConfig.AliPay.Key, false)
	if _err != nil {
		return "", _err
	}

	// 加载应用公钥证书
	if _err = client.LoadAppCertPublicKeyFromFile("appCertPublicKey_2017011104995404.crt"); _err != nil {
		// 错误处理
	}

	// 加载支付宝根证书
	if _err = client.LoadAliPayRootCertFromFile("alipayRootCert.crt"); _err != nil {
		// 错误处理
	}

	// 加载支付宝公钥证书
	if _err = client.LoadAlipayCertPublicKeyFromFile("alipayCertPublicKey_RSA2.crt"); _err != nil {
		// 错误处理
	}

	var p = alipay.TradeWapPay{}
	p.NotifyURL = "http://7cf4ac51.r31.cpolar.top/order/ret"
	p.ReturnURL = "http://baidu.com"
	p.Subject = "会员充值"
	p.OutTradeNo = Order.Snow
	p.TotalAmount = fmt.Sprintf("%.2f", Order.Price)
	p.ProductCode = "QUICK_WAP_WAY"

	var url, err = client.TradeWapPay(p)
	if err != nil {
		fmt.Println(err)
	}

	// 这个 payURL 即是用于打开支付宝支付页面的 URL，可将输出的内容复制，到浏览器中访问该 URL 即可打开支付页面。
	var payURL = url.String()
	return payURL, nil
}
